flip fix
flip関数とfix関数の合成関数
型
flip fix :: b -> ((b -> c) -> b -> c) -> c
ちなみに
flip :: (a -> b -> c) -> (b -> a -> c)
fix :: (a -> a) -> a
このaを(b -> c)と置き換えて、((b -> c) -> b -> c) -> b -> c とし
これの第1引数と第2引数を入れ替えると、flip fixの型になる
参考
Haskellのループ処理は flip fix でだいたい書けそう - Qiita